Mikmak View UnitBase ReadingOne View
Op deze pagina kan de beheerder de details van een rij uit de tabel UnitBase lezen/bekijken. Hij heeft dan de keuze om:
- de gekozen rij te updaten
- de gekozen rij te inserten
- de gekozen rij te deleten
- de details van een andere rij te bekijken
- te annuleren en terug naar Editing view te gaan
Probleem
In Mikmak UnitBase ReadingOne wireframe omzetten naar HTML hebben we gezien hoe de wireframe omzet naar html. We voegen nu de nodige attributen en Razor code toe om de details van de gekozen rij te tonen. Verder voegen de use cases toe die de gebruiker vanaf die pagina uitvoeren.
Design
- Je hebt reeds de actiemethode
ReadingOne
in deUnitBaseController
klasse toegevoegd. Hoe je dat doet lees je in Mikmak EF ReadOne actiemethode in UnitBaseController toevoegen. - We gebruiken de
@model
directive om deUnitBase
instantie vanuit de actiemethodeReadingOne
in deUnitBaseController
klasse op te vangen. Boevenaan de pagina voegen we de directive toe:@model Webwinkel.Models.UnitBase
- De volgende use cases moeten we toevoegen. We kiezen ervoor om hiervoor een
a
html element te gebruiken en geen htmlbutton
. Een button vereist eenform
html element. Vermits we geen gegevens naar de server moeten sturen - behalve natuurlijk de request url met de uit te voeren actiemethode en eventueel de Id van de gekozen rij - kunnen we hiervoor eenget
gebruiken.- Inserting
<a href="/UnitBase/Inserting" class="tile"> <span class="icon-plus"></span> <span class="screen-reader-text">Inserting</span> </a>
- Updating - hier moeten we de
Id
van de te updaten rij meegeven<a href="/UnitBase/Updating/@Model.Id" class="tile"> <span class="icon-pencil"></span> <span class="screen-reader-text">Updating</span> </a>
- ReadingOne - dat wordt in de partial view ReadingAll.cshtml gedaan, zie Mikmak Views Refactoren met Partial Views
- Delete - hier moeten we de
Id
van de te deleten rij meegeven<a href="/UnitBase/Delete/@Model.Id" class="tile"> <span class="icon-remove"></span> <span class="screen-reader-text">Delete</span> </a>
- Annuleren
<a href="/UnitBase/Cancel" class="tile"> <span class="icon-close"></span> <span class="screen-reader-text">Annuleren</span> </a>
Vergeet niet de methodeCancel
in deUnitBaseController
aan te maken. Deze methode doet hetzelfde alsInsertingCancel
methode. Het is miscchien een beter idee om deze methode de refactoren en te veralgemenen naarCancel
.
- Inserting
- Nu moeten we nog de input html elementen aanpassen. We voegen het attribuut
readonly
toe en vullen de waarden voor hetvalue
attribuut in met de waarden van deUnitBase
instantie.<fieldset> <div> <label for="UnitBaseCode">Code</label> <input id="UnitBaseCode" name="UnitBaseCode" class="text" style="width: 22.5%;" type="text" value="@Model.Code" readonly /> </div> <div> <label for="UnitBaseName">Nom</label> <input id="UnitBaseName" name="UnitBaseName" class="text" style="width: 32.5%;" type="text" value="@Model.Name" readonly /> </div> <div> <label for="UnitBaseDescription">Nom</label> <textarea id="UnitBaseDescription" name="UnitBaseDescription" class="text" style="width: 32.5%;" type="text" value="" readonly>@Model.Description</textarea> </div> </fieldset>
Oplossing
De volledige code voor ReadingOne.cshtml:
@model Webwinkel.Models.UnitBase @{ Layout = "~/Views/Shared/MasterLayout.cshtml"; } <div class="floor" id="flat-entity-floor"> <div class="control-panel"> <a href="/Home/Index" class="tile"> <span class="icon-menu2"></span> <span class="screen-reader-text">Home</span> </a> <h1>MikMak</h1> </div> <form class="showroom" action="/UnitBase/Insert" method="post"> <header> <h2>Details basiseenheid</h2> <div id="command-panel" class="command-panel"> <a href="/UnitBase/Updating/@Model.Id" class="tile"> <span class="icon-pencil"></span> <span class="screen-reader-text">Updating</span> </a> <a href="/UnitBase/Inserting" class="tile"> <span class="icon-plus"></span> <span class="screen-reader-text">Inserting</span> </a> <a href="/UnitBase/Delete/@Model.Id" class="tile"> <span class="icon-remove"></span> <span class="screen-reader-text">Delete</span> </a> <a href="/UnitBase/Cancel" class="tile"> <span class="icon-close"></span> <span class="screen-reader-text">Annuleren</span> </a> </div> </header> @Html.Action("ReadingAll") <div class="detail"> <fieldset> <div> <label for="UnitBaseCode">Code</label> <input id="UnitBaseCode" name="UnitBaseCode" class="text" style="width: 22.5%;" type="text" value="@Model.Code" readonly /> </div> <div> <label for="UnitBaseName">Nom</label> <input id="UnitBaseName" name="UnitBaseName" class="text" style="width: 32.5%;" type="text" value="@Model.Name" readonly /> </div> <div> <label for="UnitBaseDescription">Nom</label> <textarea id="UnitBaseDescription" name="UnitBaseDescription" class="text" style="width: 32.5%;" type="text" value="" readonly> @Model.Description </textarea> </div> </fieldset> <div class="feedback"> </div> </div> </form> </div>
2017-01-03 13:23:53